<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>【网络基础】HTTP协议 | 狼组安全团队公开知识库</title>
    <meta name="description" content="">
    <meta name="generator" content="VuePress 1.7.1">
    <link rel="icon" href="/assets/logo.svg">
    <script type="text/javascript" src="/assets/js/push.js"></script>
    <meta name="description" content="致力于打造信息安全乌托邦">
    <meta name="referrer" content="never">
    <meta name="keywords" content="知识库,公开知识库,狼组,狼组安全团队知识库,knowledge">
    <link rel="preload" href="/assets/css/0.styles.32ca519c.css" as="style"><link rel="preload" href="/assets/js/app.f7464420.js" as="script"><link rel="preload" href="/assets/js/2.26207483.js" as="script"><link rel="preload" href="/assets/js/18.73745a4c.js" as="script"><link rel="prefetch" href="/assets/js/10.55514509.js"><link rel="prefetch" href="/assets/js/11.ec576042.js"><link rel="prefetch" href="/assets/js/12.a5584a2f.js"><link rel="prefetch" href="/assets/js/13.c9f84b2e.js"><link rel="prefetch" href="/assets/js/14.d2a5440c.js"><link rel="prefetch" href="/assets/js/15.2f271296.js"><link rel="prefetch" href="/assets/js/16.0895ce42.js"><link rel="prefetch" href="/assets/js/17.627e2976.js"><link rel="prefetch" href="/assets/js/19.19350186.js"><link rel="prefetch" href="/assets/js/20.e4eac589.js"><link rel="prefetch" href="/assets/js/21.fc0657ba.js"><link rel="prefetch" href="/assets/js/22.f4a1220f.js"><link rel="prefetch" href="/assets/js/23.c8cce92d.js"><link rel="prefetch" href="/assets/js/24.46225ec2.js"><link rel="prefetch" href="/assets/js/25.9b6d75e4.js"><link rel="prefetch" href="/assets/js/26.288f535e.js"><link rel="prefetch" href="/assets/js/27.865bdc75.js"><link rel="prefetch" href="/assets/js/28.f4224fef.js"><link rel="prefetch" href="/assets/js/29.6393a40b.js"><link rel="prefetch" href="/assets/js/3.a509f503.js"><link rel="prefetch" href="/assets/js/30.d5a49f97.js"><link rel="prefetch" href="/assets/js/31.eb3647df.js"><link rel="prefetch" href="/assets/js/32.7f48a571.js"><link rel="prefetch" href="/assets/js/33.1f374ffa.js"><link rel="prefetch" href="/assets/js/34.5a911179.js"><link rel="prefetch" href="/assets/js/35.d2bcc7ef.js"><link rel="prefetch" href="/assets/js/36.42e440bd.js"><link rel="prefetch" href="/assets/js/37.dedbbdea.js"><link rel="prefetch" href="/assets/js/38.d68d1f69.js"><link rel="prefetch" href="/assets/js/39.e278f860.js"><link rel="prefetch" href="/assets/js/4.35636da8.js"><link rel="prefetch" href="/assets/js/40.97f4e937.js"><link rel="prefetch" href="/assets/js/41.38630688.js"><link rel="prefetch" href="/assets/js/42.cae56aa5.js"><link rel="prefetch" href="/assets/js/43.61a04b16.js"><link rel="prefetch" href="/assets/js/44.5c6230f2.js"><link rel="prefetch" href="/assets/js/45.0f1355ae.js"><link rel="prefetch" href="/assets/js/46.c1906649.js"><link rel="prefetch" href="/assets/js/47.7ae220ce.js"><link rel="prefetch" href="/assets/js/48.59af224e.js"><link rel="prefetch" href="/assets/js/49.6a33a171.js"><link rel="prefetch" href="/assets/js/5.08ab40ee.js"><link rel="prefetch" href="/assets/js/50.f14601d2.js"><link rel="prefetch" href="/assets/js/51.f20841fd.js"><link rel="prefetch" href="/assets/js/52.fb0a5327.js"><link rel="prefetch" href="/assets/js/53.8013048c.js"><link rel="prefetch" href="/assets/js/54.d132c2f8.js"><link rel="prefetch" href="/assets/js/55.87aa8b5d.js"><link rel="prefetch" href="/assets/js/56.161f38ad.js"><link rel="prefetch" href="/assets/js/57.bd6a2ef2.js"><link rel="prefetch" href="/assets/js/58.8a69f15a.js"><link rel="prefetch" href="/assets/js/59.93c0e2de.js"><link rel="prefetch" href="/assets/js/6.fda5ce3a.js"><link rel="prefetch" href="/assets/js/60.10091d44.js"><link rel="prefetch" href="/assets/js/61.cd1e3b10.js"><link rel="prefetch" href="/assets/js/62.9c0ad8c5.js"><link rel="prefetch" href="/assets/js/63.4a8dd9d2.js"><link rel="prefetch" href="/assets/js/64.6bf3fede.js"><link rel="prefetch" href="/assets/js/65.7a2ccc50.js"><link rel="prefetch" href="/assets/js/66.874d563b.js"><link rel="prefetch" href="/assets/js/67.bb86eab2.js"><link rel="prefetch" href="/assets/js/68.c1db2a2b.js"><link rel="prefetch" href="/assets/js/69.8141480b.js"><link rel="prefetch" href="/assets/js/7.d1fe6bef.js"><link rel="prefetch" href="/assets/js/70.9fb74c80.js"><link rel="prefetch" href="/assets/js/71.d1e4e9ab.js"><link rel="prefetch" href="/assets/js/72.e6bf83fb.js"><link rel="prefetch" href="/assets/js/73.6dd6c980.js"><link rel="prefetch" href="/assets/js/74.3612ba47.js"><link rel="prefetch" href="/assets/js/75.6e1a2434.js"><link rel="prefetch" href="/assets/js/76.5bfa4bcc.js"><link rel="prefetch" href="/assets/js/77.784df031.js"><link rel="prefetch" href="/assets/js/78.aa94a0a0.js"><link rel="prefetch" href="/assets/js/79.c4e9a4f2.js"><link rel="prefetch" href="/assets/js/8.63fd05d7.js"><link rel="prefetch" href="/assets/js/80.8d47d1f7.js"><link rel="prefetch" href="/assets/js/81.1160b022.js"><link rel="prefetch" href="/assets/js/82.7d17e5c8.js"><link rel="prefetch" href="/assets/js/83.a2ff144a.js"><link rel="prefetch" href="/assets/js/84.53d29383.js"><link rel="prefetch" href="/assets/js/9.b49161a4.js">
    <link rel="stylesheet" href="/assets/css/0.styles.32ca519c.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="ant-row"><div class="nav-button"><i aria-label="icon: bars" class="anticon anticon-bars"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="bars" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z"></path></svg></i> <span></span></div> <div class="ant-col ant-col-xs-24 ant-col-sm-24 ant-col-md-6 ant-col-lg-5 ant-col-xl-5 ant-col-xxl-4"><a href="/" class="router-link-active home-link"><img src="/assets/logo.svg" alt="狼组安全团队公开知识库" class="logo"> <span class="site-name">狼组安全团队公开知识库</span></a> <div class="search-box mobile-search"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div></div> <div class="ant-col ant-col-xs-0 ant-col-sm-0 ant-col-md-18 ant-col-lg-19 ant-col-xl-19 ant-col-xxl-20"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><ul role="menu" id="nav" class="ant-menu ant-menu-horizontal ant-menu-root ant-menu-light"><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="display:none;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li><li role="menuitem" class="ant-menu-item"><a href="/" class="router-link-active">
          首页
        </a></li><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="display:none;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li><li role="menuitem" class="ant-menu-item"><a href="/guide/">
          使用指南
        </a></li><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="display:none;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li><li role="menuitem" class="ant-menu-item"><a href="/knowledge/" class="router-link-active">
          知识库
        </a></li><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="display:none;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li><li role="menuitem" class="ant-menu-item"><a href="/opensource/">
          开源项目
        </a></li><li role="menuitem" class="ant-menu-submenu ant-menu-submenu-horizontal ant-menu-overflowed-submenu" style="visibility:hidden;position:absolute;"><div aria-haspopup="true" class="ant-menu-submenu-title"><span>···</span><i class="ant-menu-submenu-arrow"></i></div></li></ul> <a href="https://github.com/wgpsec" target="_blank" rel="noopener noreferrer" class="repo-link"><i aria-label="icon: github" class="anticon anticon-github"><svg viewBox="64 64 896 896" focusable="false" data-icon="github" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z"></path></svg></i></a></nav></div></div> <!----></header> <aside class="sidebar"><div><div class="promo"><div id="promo_3"><div class="promo_title">赞助商</div> <button type="button" class="ant-btn ant-btn-primary ant-btn-background-ghost"><span>成为赞助商</span></button></div></div> <div role="separator" id="reset-margin" class="ant-divider ant-divider-horizontal ant-divider-dashed"></div></div> <ul class="sidebar-links"><li><a href="/knowledge/" aria-current="page" title="知识库广告位招租" class="sidebar-link">知识库广告位招租</a></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>CTF</span> <span class="arrow right"><i aria-label="icon: down" class="anticon anticon-down"><svg viewBox="64 64 896 896" focusable="false" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>基础知识</span> <span class="arrow down"><i aria-label="icon: down" class="anticon anticon-down"><svg viewBox="64 64 896 896" focusable="false" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/knowledge/base/" aria-current="page" title="分类简介" class="sidebar-link">分类简介</a></li><li><a href="/knowledge/base/safety.html" title="网络安全设备常识" class="sidebar-link">网络安全设备常识</a></li><li><a href="/knowledge/base/network-web.html" title="【网络基础】Web应用常识" class="sidebar-link">【网络基础】Web应用常识</a></li><li><a href="/knowledge/base/network-tcp-ip.html" title="【网络基础】TCP/IP协议" class="sidebar-link">【网络基础】TCP/IP协议</a></li><li><a href="/knowledge/base/network-http.html" aria-current="page" title="【网络基础】HTTP协议" class="active sidebar-link">【网络基础】HTTP协议</a></li><li><a href="/knowledge/base/network-https.html" title="【网络基础】SSL双向认证" class="sidebar-link">【网络基础】SSL双向认证</a></li><li><a href="/knowledge/base/network-route.html" title="【网络基础】路由协议" class="sidebar-link">【网络基础】路由协议</a></li><li><a href="/knowledge/base/linux-cmd.html" title="【操作系统】Linux基础命令" class="sidebar-link">【操作系统】Linux基础命令</a></li><li><a href="/knowledge/base/linux-awk.html" title="【操作系统】Linux三剑客" class="sidebar-link">【操作系统】Linux三剑客</a></li><li><a href="/knowledge/base/git-base.html" title="Git基本用法" class="sidebar-link">Git基本用法</a></li><li><a href="/knowledge/base/docker-base.html" title="Docker微服务构建指南" class="sidebar-link">Docker微服务构建指南</a></li></ul></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>工具手册</span> <span class="arrow right"><i aria-label="icon: down" class="anticon anticon-down"><svg viewBox="64 64 896 896" focusable="false" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>Web安全</span> <span class="arrow right"><i aria-label="icon: down" class="anticon anticon-down"><svg viewBox="64 64 896 896" focusable="false" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>攻防对抗</span> <span class="arrow right"><i aria-label="icon: down" class="anticon anticon-down"><svg viewBox="64 64 896 896" focusable="false" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>代码审计</span> <span class="arrow right"><i aria-label="icon: down" class="anticon anticon-down"><svg viewBox="64 64 896 896" focusable="false" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></p> <!----></section></li></ul></aside> <main class="page"> <div class="theme-antdocs-content content__default"><h1 id="http协议概述">HTTP协议概述 <a href="#http协议概述" class="header-anchor">#</a></h1> <p>HTTP 对 TCP 连接的使用，分为两种方式：俗称“短连接”和“长连接” ；HTTP/1.1 默认使用长连接(持久化连接)</p> <p><strong>与HTTPS的主要区别</strong></p> <blockquote><p>HTTP是明文传输；HTTPS是SSL加密传输</p> <p>HTTP是无状态的，简单但不安全；HTTPS需要身份认证，加密传输，比HTTP安全</p></blockquote> <h4 id="当你输入一个网址-点击访问-会发生什么">当你输入一个网址，点击访问，会发生什么？ <a href="#当你输入一个网址-点击访问-会发生什么" class="header-anchor">#</a></h4> <p><strong>查找DNS记录</strong></p> <ol><li>查看浏览器缓存</li> <li>查看系统缓存</li> <li>查看路由器缓存</li> <li>查找ISP DNS缓存</li> <li>递归搜索。根据网址，发送一个DNS请求，UDP请求，端口为543，会请求一个DNS服务器，DNS服务器会不断递归查找这个网址的IP</li></ol> <p><strong>建立连接</strong></p> <ol><li>跟获取到的IP建立TCP连接，在TCP连接(80端口)上发送HTTP报文；根据规则， 只有低层协议建立之后才能，才能进行高层协议的连接</li> <li>发送请求行，<code>GET /dir/xx.php HTTP/1.1</code></li> <li>发送请求头，浏览器发送一行空白行来告知服务器结束请求头信息发送</li> <li>服务器响应， <code>HTTP/1.1 200 OK</code>（协议版本号和HTTP状态码）</li> <li>服务器发送响应头，服务器自己的相关信息（同样用空白行表示结束响应头）</li> <li>服务器向浏览器发送数据， 以<code>Content-Type</code>响应头信息所描述的格式发送用户所请求的实际数据</li> <li>服务器关闭TCP连接，如果请求头或响应头加了这行 <code>Connection:keep-alive</code> 代码，会保持连接</li></ol> <p><strong>请求方法</strong></p> <blockquote><p>**GET：**用于请求已被URL识别的资源</p> <p>**POST：**用于向服务器传输数据，例如提交表单、文件上传</p> <p><strong>OPTIONS</strong>：查询相应URL支持的HTTP方法</p> <p><strong>HEAD：</strong> 获得报文首部，与GET方法类似，只是不返回报文主体，一般用于验证URI是否有效</p> <p><strong>PUT：</strong> 上传文件，报文主体中包含文件内容，保存到对应URL位置</p> <p><strong>DELETE</strong>：删除文件，与PUT方法相反，删除对应URI位置的文件</p> <p><strong>TRACE：</strong> 用于诊断，响应中返回收到请求消息的具体内容</p></blockquote> <h1 id="常见请求头">常见请求头 <a href="#常见请求头" class="header-anchor">#</a></h1> <h4 id="通用首部字段-请求报文与响应报文都会使用的首部字段">通用首部字段（请求报文与响应报文都会使用的首部字段） <a href="#通用首部字段-请求报文与响应报文都会使用的首部字段" class="header-anchor">#</a></h4> <blockquote><p>Date：报文创建时间
**Connection：**连接的管理，告诉通信另一端完成HTTP传输后，是关闭TCP连接，还是保持连接以接受其它消息
Cache-Control：缓存的控制
Transfer-Encoding：报文主体的传输编码方式</p></blockquote> <h4 id="请求首部字段-请求报文会使用的首部字段">请求首部字段（请求报文会使用的首部字段） <a href="#请求首部字段-请求报文会使用的首部字段" class="header-anchor">#</a></h4> <blockquote><p>Host：请求资源所在服务器和端口号
Accept：可处理的媒体类型
Accept-Charset：可接收的字符集
Accept-Encoding：可接受的内容编码
Accept-Language：可接受的自然语言</p> <p>**Cookie：**用于向服务器提交它以前发布的cookie</p> <p><strong>If-Modified-Since：</strong> 用于说明最后一次收到所请求资源的时间</p> <p>如果自那之后资源没有变化，服务器会返回一个状态码304的响应，指示客户端使用资源的缓存副本</p> <p>**If-None-Match：**用于指定一个实体标签</p> <p>当最后一次收到所请的求资源时，浏览器提交服务器发布的实体标签</p> <p>服务器可以使用实体标签，确认浏览器是否使用资源的缓存副本</p> <p><strong>Origin：</strong> 用在Ajax跨域请求中，用于指示提出请求的域</p> <p>**Referer：**指示发出当前请求的原始URL</p> <p><strong>User-Agent</strong>	提供生成请求客户端软件的有关信息</p></blockquote> <h4 id="响应首部字段-响应报文会使用的首部字段">响应首部字段（响应报文会使用的首部字段） <a href="#响应首部字段-响应报文会使用的首部字段" class="header-anchor">#</a></h4> <blockquote><p>Allow：资源可支持的HTTP方法
Location：在重定向响应中，说明重定向的目标
Server：提供所使用的Web服务器软件的信息</p> <p>Accept-Ranges：可接受的字节范围</p></blockquote> <h4 id="实体首部字段-请求报文与响应报文的消息主体部分使用的首部字段">实体首部字段（请求报文与响应报文的消息主体部分使用的首部字段） <a href="#实体首部字段-请求报文与响应报文的消息主体部分使用的首部字段" class="header-anchor">#</a></h4> <blockquote><p><strong>Content-Type</strong>：规定消息主体的类型
**Content-Encoding：**实体主体适用的编码方式，一些应用程序用它压缩响应加快传输
Content-Language：实体主体的自然语言
**Content-Length：**规定消息主体的字节长度 (HEAD方法例外)
Content-Range：实体主体的位置范围，一般用于发出部分请求时使用</p> <p><strong>Transfer-Encoding：</strong> chunked 分块传输；常用它指定块编码，它是指定HTTP传输对消息主体使用的任何编码的</p> <p>**Access-Control-Allow-Origin：**指示可否通过跨域Ajax请求获取资源</p> <p>**ETag：**用于指定一个实体标签。</p> <p>客户端可在将来的请求中提交这个标识符，获取和If-None-Match消息头中相同的资源</p> <p>通知服务器浏览器当前缓存中保存的是哪个版本的资源</p> <p><strong>Expirses：</strong> 用于向浏览器说明消息主体内容的有效时间，在这个时间内浏览器可以使用这个资源的缓存副本</p> <p><strong>Pragma</strong>	指示浏览器不要将响应保存在缓存中(no-cache)</p> <p>**Set-Cookie：**用于向浏览器发布Cookie，浏览器会在随后的请求中将其返回给服务器</p> <p>**WWW-Authenticate：**在带401状态码的响应中，提供与服务器所支持的身份验证类型的有关信息 (如基础认证)</p> <p>X-Frame-Options：指示浏览器框架是否加载以及如何加载当前响应</p></blockquote> <h4 id="cookie"><strong>Cookie</strong> <a href="#cookie" class="header-anchor">#</a></h4> <p>HTTP协议是无状态的，为使用正确的状态数据处理每个请求，常用Cookie对用户会话进行唯一标识。</p> <div class="language-javascript line-numbers-mode"><pre class="language-javascript"><code>document<span class="token punctuation">.</span>cookie	<span class="token comment">//获取cookie</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>Cookie 一般由一个 <code>名/值</code> 对组成(id=12345)，也可以包含任何不含空格的字符串。</p> <p>除Cookie的实际值外，Set-Cookie消息头还可以包含以下可选属性，用它们控制浏览器处理Cookie的方式。</p> <blockquote><p>**expires：**用于设定Cookie有效时间，此时间内cookie一直有效</p> <p>如果没设这个属性cookie仅在当前浏览器会话中有用，关闭浏览器将失效</p> <p>**domain：**用于指定cookie的有效域，这个域必须和收到Cookie的域相同，或是它的父域</p> <p>path：指定cookie的有效URL路径</p> <p>secure：如果设置这个属性，则仅在HTTPS请求中提交Cookie</p> <p>HTTPOnly：如果设置这个属性，将无法通过客户端javascript直接访问Cookie</p></blockquote> <h1 id="常见状态码">常见状态码 <a href="#常见状态码" class="header-anchor">#</a></h1> <blockquote><p>100：表示收到请求消息头，客户端应继续发送主体</p> <p>200：请求被正常处理</p> <p>201：PUT请求返回这个状态码，表示请求已成功提交</p> <p>204：请求被受理但没有资源可以返回
206：客户端只是请求资源的一部分，服务器只对请求的部分资源执行GET方法，相应报文中通过Content-Range指定范围的资源。
301：永久性重定向
302：临时重定向
303：与302状态码有相似功能，只是它希望客户端在请求一个URI的时候，能通过GET方法重定向到另一个URI上
304：发送附带条件的请求时，条件不满足时返回，指示浏览器使用缓存中所请求资源的副本
307：临时重定向，与302类似，只是强制要求使用POST方法
400：请求报文语法有误，服务器无法识别
401：请求需要认证
403：请求的对应资源禁止被访问
404：服务器无法找到对应资源</p> <p>405：不支持请求中使用的请求方法</p> <p>413：请求主体过长，服务器无法处理 (探查缓冲区溢出时会有)</p> <p>414：请求URL过长，服务器无法处理</p> <p>500：服务器内部错误
503：服务器正忙，用来说明服务器现在无法为请求提供服务，但将来可以 (服务器负载过大)</p></blockquote> <h1 id="http-1-1新特性">HTTP/1.1新特性 <a href="#http-1-1新特性" class="header-anchor">#</a></h1> <p>一、 默认持久连接节省通信量，只要客户端服务端任意一端没有明确提出断开TCP连接，就一直保持连接，可以发送多次HTTP请求</p> <p>二、 管线化 ( pipelining )，客户端可以同时发出多个HTTP请求，而不用一个个等待响应</p> <p>三、 断点续传。实际上就是利用HTTP消息头使用分块传输编码，将实体主体分块传输</p> <p>(利用新特性有两种绕过WAF的方法)</p> <h1 id="http优化方案有哪些呢">HTTP优化方案有哪些呢？ <a href="#http优化方案有哪些呢" class="header-anchor">#</a></h1> <p><strong>TCP复用：</strong></p> <p>TCP连接复用是将多个客户端的HTTP请求复用到一个服务器端TCP连接上，而HTTP复用则是一个客户端的多个HTTP请求通过一个TCP连接进行处理。</p> <p>前者是负载均衡设备的独特功能；而后者是HTTP 1.1协议所支持的新功能，目前被大多数浏览器所支持。</p> <p>**内容缓存：**将经常用到的内容进行缓存起来，那么客户端就可以直接在内存中获取相应的数据了。</p> <p>**压缩：**将文本数据进行压缩，减少带宽</p> <p>**SSL加速（SSL Acceleration）：**使用SSL协议对HTTP协议进行加密，在通道内加密并加速</p> <p>**TCP缓冲：**通过采用TCP缓冲技术，可以提高服务器端响应时间和处理效率，减少由于通信链路问题给服务器造成的连接负担</p> <h1 id="http代理">HTTP代理 <a href="#http代理" class="header-anchor">#</a></h1> <p>当配置浏览器使用代理服务器时，它会将所有的请求提交到代理服务器，代理服务器再将请求转给Web服务器。</p> <p>常用的代理服务器软件有BurpSuite和Fiddler。</p> <p><strong>如果使用代理服务器，HTTP工作机制会出现两方面差异：</strong></p> <blockquote><p><strong>(1)</strong> 当使用代理服务器发布HTTP请求时，它会将完整的URL插入请求中</p> <p>​	  代理服务器将提取主机名和端口，用这些信息将请求指向正确的目标Web服务器</p> <p><strong>(2)</strong> 当使用HTTPS时，浏览器无法与代理服务器进行SSL握手，因为这样会破坏隧道，使通信遭受拦截攻击</p> <p>​	  因此浏览器必须将代理作为一个纯粹的TCP中继，一直开放TCP连接</p></blockquote> <h1 id="http身份验证">HTTP身份验证 <a href="#http身份验证" class="header-anchor">#</a></h1> <p>**Basic：**基础认证，在请求消息头中随每条消息以base64编码字符串的形式发送用户证书。</p> <p>使用BurpSuite的Intruder模块自定义迭代器base64编码payload后请求或使用co2插件都可攻击基础认证。</p> <p>**NTML：**这是一种质询-响应式机制，使用某个Windows NTML协议版本，很大程度上已被 Kerberos 取代。</p> <p>**Digest：**这是一种质询-响应式机制，随用户证书一起使用一个随机值MD5校验和</p> <p>HTTP Basic 与 HTTP Digest 认证现在已经合并成一个标准， 即 RFC2617。</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">上次更新:</span> <span class="time">12/18/2021, 12:46:42 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev"><a href="/knowledge/base/network-tcp-ip.html" class="prev"><i aria-label="icon: left" class="anticon anticon-left"><svg viewBox="64 64 896 896" focusable="false" data-icon="left" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 0 0 0 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"></path></svg></i>
        【网络基础】TCP/IP协议
      </a></span> <span class="next"><a href="/knowledge/base/network-https.html">
        【网络基础】SSL双向认证
        <i aria-label="icon: right" class="anticon anticon-right"><svg viewBox="64 64 896 896" focusable="false" data-icon="right" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z"></path></svg></i></a></span></p></div> </main> <!----></div><div class="global-ui"></div></div>
    <script src="/assets/js/app.f7464420.js" defer></script><script src="/assets/js/2.26207483.js" defer></script><script src="/assets/js/18.73745a4c.js" defer></script>
  </body>
</html>